//除了正常运行模式，ECMAscript 5添加了第二种运行模式："严格模式"（strict mode）。顾名思义，这种模式使得Javascript在更严格的条件下运行。
'use strict';

import { AlertIOS } from 'react-native'

//第三方组件
import Mock from 'mockjs'
import queryString from 'query-string'  //处理queryString拼接
import _ from 'lodash'  //用于对象的clone，替换，集成等

//自定义组件
import config from './config'

let request = {};

/*注意：fetch为异步请求 errorCode可以传 */
request.get = function (url, params, errorCode) {
  errorCode = errorCode || '0000'; //给错误码默认值

  if (params) {
    url += '?' + queryString.stringify(params);
  }

  Mock.mock('http://www.baidu.com','')

  //发起请求
  return fetch(url)
    .then((response) => response.json())
    .then((response) => Mock.mock(response))
    .catch((err) => {
      console.error(err);
      AlertIOS.alert('网络异常，请稍后再试。错误码：' + errorCode);
    });
};

/* fetch发起POST请求 errorCode可以传 */
request.post = function (url, body, errorCode) {
  errorCode = errorCode || '0000'; //给错误码默认值

  let options = _.extend(config.header, {body: JSON.stringify(body)});

  return fetch(url, options)
    .then((response) => response.json())
    .then((response) => Mock.mock(response))
    .catch((err) => {
      console.error(err);
      AlertIOS.alert('网络异常，请稍后再试。错误码：' + errorCode);
    });
};

module.exports = request;